\contentsline {section}{\numberline {1}Introduction}{5}
\contentsline {subsection}{\numberline {1.1}Core vs Common}{5}
\contentsline {subsection}{\numberline {1.2}Use cases}{5}
\contentsline {subsection}{\numberline {1.3}Other frameworks}{6}
\contentsline {subsection}{\numberline {1.4}Notation}{6}
\contentsline {subsection}{\numberline {1.5}Design principles}{7}
\contentsline {subsection}{\numberline {1.6}Numbers}{8}
\contentsline {section}{\numberline {2}Basics}{9}
\contentsline {subsection}{\numberline {2.1}Hello World}{9}
\contentsline {subsection}{\numberline {2.2}Dockable}{10}
\contentsline {subsection}{\numberline {2.3}DockStation}{11}
\contentsline {subsubsection}{\numberline {2.3.1}StackDockStation}{11}
\contentsline {subsubsection}{\numberline {2.3.2}SplitDockStation}{12}
\contentsline {subsubsection}{\numberline {2.3.3}FlapDockStation}{13}
\contentsline {subsubsection}{\numberline {2.3.4}ScreenDockStation}{14}
\contentsline {subsection}{\numberline {2.4}DockController}{15}
\contentsline {subsection}{\numberline {2.5}DockFrontend}{16}
\contentsline {subsubsection}{\numberline {2.5.1}Close-Button}{17}
\contentsline {subsubsection}{\numberline {2.5.2}Storing the layout}{17}
\contentsline {section}{\numberline {3}Load and Save layouts}{18}
\contentsline {subsection}{\numberline {3.1}Placeholders}{18}
\contentsline {subsection}{\numberline {3.2}Local: DockableProperty}{19}
\contentsline {subsubsection}{\numberline {3.2.1}Creation}{19}
\contentsline {subsubsection}{\numberline {3.2.2}Usage}{20}
\contentsline {subsubsection}{\numberline {3.2.3}Storage}{21}
\contentsline {subsection}{\numberline {3.3}Global: DockSituation}{21}
\contentsline {subsubsection}{\numberline {3.3.1}Basic Algorithms}{21}
\contentsline {subsubsection}{\numberline {3.3.2}Basic Usage}{23}
\contentsline {subsubsection}{\numberline {3.3.3}Reuse existing Dockables}{24}
\contentsline {subsubsection}{\numberline {3.3.4}Exctract local information}{26}
\contentsline {subsection}{\numberline {3.4}Perspectives}{26}
\contentsline {subsection}{\numberline {3.5}DockFrontend}{27}
\contentsline {subsubsection}{\numberline {3.5.1}Local}{27}
\contentsline {subsubsection}{\numberline {3.5.2}Global}{27}
\contentsline {subsubsection}{\numberline {3.5.3}Missing Dockables}{28}
\contentsline {section}{\numberline {4}Actions}{30}
\contentsline {subsection}{\numberline {4.1}Show Actions}{31}
\contentsline {subsubsection}{\numberline {4.1.1}List of Actions}{31}
\contentsline {subsubsection}{\numberline {4.1.2}Source of Actions}{31}
\contentsline {subsection}{\numberline {4.2}Standard Actions}{32}
\contentsline {subsubsection}{\numberline {4.2.1}Simple actions}{33}
\contentsline {subsubsection}{\numberline {4.2.2}Group actions}{34}
\contentsline {subsection}{\numberline {4.3}Custom actions}{35}
\contentsline {subsubsection}{\numberline {4.3.1}Reuse existing view}{35}
\contentsline {subsubsection}{\numberline {4.3.2}Custom view}{36}
\contentsline {section}{\numberline {5}Titles}{38}
\contentsline {subsection}{\numberline {5.1}Lifecycle}{38}
\contentsline {subsection}{\numberline {5.2}Custom titles}{39}
\contentsline {subsubsection}{\numberline {5.2.1}Implementing a new title}{39}
\contentsline {subsubsection}{\numberline {5.2.2}Apply the title}{40}
\contentsline {section}{\numberline {6}Themes}{41}
\contentsline {subsection}{\numberline {6.1}Existing Themes}{41}
\contentsline {subsubsection}{\numberline {6.1.1}NoStackTheme}{41}
\contentsline {subsubsection}{\numberline {6.1.2}BasicTheme}{41}
\contentsline {subsubsection}{\numberline {6.1.3}SmoothTheme}{42}
\contentsline {subsubsection}{\numberline {6.1.4}FlatTheme}{42}
\contentsline {subsubsection}{\numberline {6.1.5}BubbleTheme}{42}
\contentsline {subsubsection}{\numberline {6.1.6}EclipseTheme}{43}
\contentsline {subsection}{\numberline {6.2}Custom Theme}{44}
\contentsline {subsection}{\numberline {6.3}Customizing}{44}
\contentsline {subsubsection}{\numberline {6.3.1}UI-Properties}{44}
\contentsline {subsubsection}{\numberline {6.3.2}Colors}{46}
\contentsline {subsubsection}{\numberline {6.3.3}Fonts}{47}
\contentsline {subsubsection}{\numberline {6.3.4}Icons}{47}
\contentsline {subsubsection}{\numberline {6.3.5}Text}{48}
\contentsline {subsubsection}{\numberline {6.3.6}Actions}{48}
\contentsline {subsubsection}{\numberline {6.3.7}Titles}{48}
\contentsline {subsubsection}{\numberline {6.3.8}Border}{48}
\contentsline {subsubsection}{\numberline {6.3.9}Background}{48}
\contentsline {subsubsection}{\numberline {6.3.10}Drag and drop decorations}{48}
\contentsline {subsubsection}{\numberline {6.3.11}Displayers}{48}
\contentsline {section}{\numberline {7}Stations in depth}{50}
\contentsline {subsection}{\numberline {7.1}ScreenDockStation}{50}
\contentsline {subsubsection}{\numberline {7.1.1}Window type}{50}
\contentsline {subsubsection}{\numberline {7.1.2}Window configuration}{51}
\contentsline {subsubsection}{\numberline {7.1.3}Stickiness and attraction}{51}
\contentsline {subsubsection}{\numberline {7.1.4}Fullscreen}{51}
\contentsline {subsubsection}{\numberline {7.1.5}Drop size}{52}
\contentsline {subsection}{\numberline {7.2}SplitDockStation}{52}
\contentsline {subsubsection}{\numberline {7.2.1}The tree}{52}
\contentsline {subsubsection}{\numberline {7.2.2}Divider}{53}
\contentsline {subsubsection}{\numberline {7.2.3}LayoutManager}{53}
\contentsline {subsection}{\numberline {7.3}StackDockStation}{54}
\contentsline {subsubsection}{\numberline {7.3.1}TabPane}{54}
\contentsline {subsubsection}{\numberline {7.3.2}Tab content}{55}
\contentsline {subsubsection}{\numberline {7.3.3}Tab configuration}{56}
\contentsline {subsubsection}{\numberline {7.3.4}Header layout}{56}
\contentsline {subsection}{\numberline {7.4}FlapDockStation}{56}
\contentsline {subsubsection}{\numberline {7.4.1}Button content}{56}
\contentsline {subsubsection}{\numberline {7.4.2}Button actions}{57}
\contentsline {section}{\numberline {8}Drag and Drop}{58}
\contentsline {subsection}{\numberline {8.1}Relocator}{58}
\contentsline {subsection}{\numberline {8.2}Deciding what element to drag}{58}
\contentsline {subsubsection}{\numberline {8.2.1}DockElementRepresentative}{58}
\contentsline {subsubsection}{\numberline {8.2.2}Remote control}{59}
\contentsline {subsection}{\numberline {8.3}Deciding where to drop an element}{59}
\contentsline {subsubsection}{\numberline {8.3.1}Search}{60}
\contentsline {subsubsection}{\numberline {8.3.2}Drop}{60}
\contentsline {subsection}{\numberline {8.4}Restrictions}{61}
\contentsline {subsection}{\numberline {8.5}Modes}{62}
\contentsline {subsection}{\numberline {8.6}Animations}{62}
\contentsline {section}{\numberline {9}Preferences}{64}
\contentsline {subsection}{\numberline {9.1}Model}{64}
\contentsline {subsubsection}{\numberline {9.1.1}Preference}{64}
\contentsline {subsubsection}{\numberline {9.1.2}PreferenceModel}{65}
\contentsline {subsubsection}{\numberline {9.1.3}PreferenceTreeModel}{65}
\contentsline {subsection}{\numberline {9.2}View}{66}
\contentsline {subsubsection}{\numberline {9.2.1}Editors}{66}
\contentsline {subsubsection}{\numberline {9.2.2}Operations}{66}
\contentsline {subsection}{\numberline {9.3}Storage}{67}
\contentsline {subsection}{\numberline {9.4}Lifecycle}{67}
\contentsline {section}{\numberline {10}Extensions}{69}
\contentsline {subsection}{\numberline {10.1}Extension Points}{69}
\contentsline {subsection}{\numberline {10.2}Glass Extension}{70}
\contentsline {subsection}{\numberline {10.3}Toolbar Extension}{71}
\contentsline {section}{\numberline {11}Properties}{72}
\contentsline {subsection}{\numberline {11.1}Themes}{72}
\contentsline {subsection}{\numberline {11.2}Stations}{74}
\contentsline {subsection}{\numberline {11.3}Miscellaneous}{76}
\contentsline {subsection}{\numberline {11.4}Gimmicks}{77}
\contentsline {subsection}{\numberline {11.5}Glass Extension}{78}
\contentsline {subsection}{\numberline {11.6}Toolbar Extension}{78}
